This invention concerns the control of a video process having control parameters that affect both the performance of the process and its processing time. An example of such a process is a motion compensated video standards converter such as the one described in WO 87/05769. Standards converters are required to operate on a wide range of picture material, from static pictures which do not require the capabilities of motion compensation, to complex, fast-moving material which may cause problems for the best-performing motion compensated algorithms.
In a motion compensated standards converter, several parameters affect the performance of the system, for example the number of local candidate motion vectors, the block size, the number of global candidate vectors, and the use or otherwise of vector post-processing.
The first implementations of such standards converters were as dedicated hardware. A design decision would have to be made on the parameters on the bases of cost and of performance on the most demanding input picture material. Having been fixed, these parameters would be applied all the time, even to less demanding material.
More recently, it has become commonplace to implement algorithms such as motion compensated standards conversion in software, either with file-to-file processing or in real-time streaming. With file-based working in particular, there can be benefit in adapting the hitherto fixed design parameters. Processing time can be reduced by selecting parameters that lead to less complex processing. A configuration of control parameters that is required for acceptable performance on demanding input data may lead to a greater than necessary processing time for less demanding data. It is therefore useful to vary the parameters in dependence on the input data to optimize the tradeoff between time and performance over a large ensemble of input data. This is an extremely difficult problem, involving the separate adjustment of several parameters for each section of input data.
It will be understood that “processing time” will depend upon the speed and capacity of the available processing hardware. If the processing time of a specific process can be reduced, advantage can be gained in many ways. The output of the process might be available proportionately more quickly. Within a real-time constraint, a process not previously available (at a particular level of performance) may now be able to be used. Similarly, it may be possible to operate a process in a limited processing capability that would otherwise not be practicable.
Several known processes reduce the dimensionality of the problem by defining rules for the adjustment of input parameters in dependence on a reduced number of parameters. An example of this is a car engine, which internally controls a set of parameters including ignition timing, fuel/air mix, fuel injection event timing, valve timing and, in the case of automatic transmission, gear ratio, as a function of a few user inputs, the position and possibly the rate of depression of the accelerator pedal. A second example is a video compression system, where a user's selection of bit rate will control “hidden” parameters such as buffer size, subsampling ratios and DCT coefficient precision.
With reduced control dimensionality, it is still necessary to optimize the global performance/cost tradeoff. In some cases, this is a relatively simple matter. For example, a central heating system can be controlled by a thermostat that simply switches it off when it is not needed. For more complex systems, such as a video standards converter, it is necessary to estimate the effect of different control settings on widely varying inputs.